/*
算法2-2 在顺序表 list 的第 i 个位置上插入元素 x
分数 15
作者 陈越
单位 浙江大学

请编写程序，将 n 个整数存入顺序表，对任一给定整数 x，将其插入顺序表中指定的第 i 个位置。注意：i 代表位序，从 1 开始，不是数组下标。
输入格式：

输入首先在第一行给出正整数 n（≤10^4）；随后一行给出 n 个 int 范围内的整数，数字间以空格分隔；最后一行给出插入位置 i 和待插入的元素 x，均为 int 范围内的整数。
输出格式：

分以下几种情况输出：

    如果顺序表中已经有 10^4 个元素了，则不能插入，在一行中输出句子 错误：表满不能插入。。
    如果插入的位置不合法，则不能插入，在一行中输出句子 错误：插入位置不合法。。
    无论是否插入成功，都在一行中顺序输出表中的元素，每个元素后面跟一个空格。

输入样例 1：

5
1 2 3 4 5
3 8

输出样例 1：

1 2 8 3 4 5 

输入样例 2：

5
4 3 6 8 0
0 1

输出样例 2：

错误：插入位置不合法。
4 3 6 8 0 
*/

#include <iostream>

#include "../base/List.cpp"

using namespace std;

int main() {
    int n;
    cin >> n;
    List *list = init(n+2);
    input(list, n);

    int i, x;
    cin >> i >> x;

    if (n == 10000) {
        cout << "错误：表满不能插入。" << endl;
    } else if (i < 1 || i > n + 1) {
        cout << "错误：插入位置不合法。" << endl;
    } else {
        insert(list, i, x);
    }
    print(list);
    freeList(list);
    return 0;
}